home *** CD-ROM | disk | FTP | other *** search
Text File | 2002-10-03 | 90.1 KB | 1,510 lines |
- cc(1) Last changed: 4-15-99
-
-
- NNAAMMEE
- cccc, cc8899, CCCC - Invokes the MIPS C, MIPSpro C, or MIPSpro C++ compiler
-
- SSYYNNOOPPSSIISS
- cccc, cc8899 [--oo3322 | --nn3322 | --6644] [--aallll] [--aannssii] [--aannssiiEE] [--aannssiiWW] [--aappoo]
- [--aappookkeeeepp] [--aappoolliisstt] [--aarr] [--bbiiggpp__oonn] [--bbiiggpp__ooffff] [--cc] [--cccckkrr]
- [--CCLLIISSTT::......] [--ccoommmmoonn] [--DD _n_a_m_e=_d_e_f] [--DD _n_a_m_e] [--DDEEBBUUGG::......]
- [--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t]]
- [[--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t]] [[--ddoollllaarr]] [[--EE]]
- [[--ffbb<<_f_i_l_e>]] [[--ffbb__ccrreeaattee <<_p_a_t_h>]] [[--ffbb__oopptt <<_p_a_t_h>]] [[--ffbbggeenn]]
- [[--ffbbuussee<<_f_i_l_e>>]] [[--ffllooaatt]] [[--ffllooaatt__ccoonnsstt]] [[--ffuullllwwaarrnn]] [[--GG _n_u_m]] [[--gg_n]]
- [[--hheellpp]] [[--II]] [[--II _d_i_r]] [[--iiggnnoorree__ssuuffffiixx]] [[--IINNLLIINNEE::......]] [[--IIPPAA::......]]
- [[--KKPPIICC]] [[--LL _d_i_r_e_c_t_o_r_y]] [[--ll _l_i_b_r_a_r_y]] [[--LLAANNGG::......]] [[--LLIISSTT::......]] [[--LLNNOO::......]]
- [[--MM]] [[--MMDDuuppddaattee _f_i_l_e_n_a_m_e]] [[--mmiippss_n [[--MMPP]] [[--mmpp]] [[--mmpplliisstt]] [[--nnooccpppp]]
- [[--nnoonn__sshhaarreedd]] [[--nnoossttddiinncc]] [[--oo _o_u_t_p_u_t]] [[--OO_n]] [[--OOPPTT::......]] [[--PP]] [[--ppccaa]]
- [[--ppccaakkeeeepp]] [[--ppccaalliisstt]] [[--ppeeddaannttiicc]] [[--rr]] [[--rr_p_r_o_c_e_s_s_o_r]] [[--SS]] [[--sshhooww]]
- [[--ssiiggnneedd]] [[--TTAARRGG::......]] [[--TTEENNVV::......]] [[--ttrraappuuvv]] [[--UU _n_a_m_e]]
- [[--uussee__rreeaaddoonnllyy__ccoonnsstt]] [[--uussee__rreeaaddwwrriittee__ccoonnsstt]] [[--vv]] [[--vveerrssiioonn]]
- [[--WW _c,_a_r_g_1[[,,_a_r_g_2......]]]] [[--ww]] [[--ww22]] [[--wwooffff aallll]] [[--wwooffff _n_u_m_b_e_r_l_i_s_t]]
- [[--xxaannssii]] [[--XXccpplluussccoommmm]] [[--YY _c,_p_a_t_h]]
-
- CCCC [--6644] [--aallll] [--aannaacchh] [--aannssiiEE] [--aannssiiWW] [--aappoo] [--aappookkeeeepp]
- [--aappoolliisstt] [--aarr] [--aauuttoo__iinncclluuddee] [--bbiiggpp__oonn] [--bbiiggpp__ooffff]
- [--bbrriieeff__ddiiaaggnnoossttiiccss] [--cc] [--ccffrroonntt] [--CCLLIISSTT::......] [--ccoommmmoonn]
- [--DD _n_a_m_e=_d_e_f] [--DD _n_a_m_e] [--DDEEBBUUGG::......] [--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t]]
- [[--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t]]
- [[--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t]] [[--ddoollllaarr]] [[--EE]] [[--ffbb<<_f_i_l_e>]] [[--ffbb__ccrreeaattee
- <<_p_a_t_h>]] [[--ffbb__oopptt <<_p_a_t_h>]] [[--ffbbggeenn]] [[--ffbbuussee<<_f_i_l_e>>]]
- [[--FFEE::eelliimmiinnaattee__dduupplliiccaattee__iinnlliinnee__ccooppiieess]] [[--FFEE::tteemmppllaattee__iinn__eellff__sseeccttiioonn]]
- [[--ffllooaatt]] [[--ffllooaatt__ccoonnsstt]] [[--ffuullllwwaarrnn]] [[--GG _n_u_m]] [[--gg_n]] [[--ggsslliimm]] [[--hheellpp]]
- [[--II]] [[--II _d_i_r]] [[--iiggnnoorree__ssuuffffiixx]] [[--IINNLLIINNEE::......]] [[--IIPPAA::......]] [[--JJ #]] [[--KKPPIICC]]
- [[--LL _d_i_r_e_c_t_o_r_y]] [[--ll _l_i_b_r_a_r_y]] [[--LLAANNGG::......]] [[--LLIISSTT::......]] [[--LLNNOO::......]] [[--MM]]
- [[--MMDDuuppddaattee _f_i_l_e_n_a_m_e]] [[--mmiippss_n [[--MMPP]] [[--mmpp]] [[--nnoo__aauuttoo__iinncclluuddee]]
- [[--nnoo__pprreelliinnkk]] [[--nnooccpppp]] [[--nnoonn__sshhaarreedd]] [[--nnoossttddiinncc]] [[--oo _o_u_t_p_u_t]] [[--OO_n]]
- [[--OOPPTT::......]] [[--PP]] [[--ppccaa]] [[--ppccaakkeeeepp]] [[--ppccaalliisstt]] [[--ppcchh]] [[--ppeeddaannttiicc]]
- [[--pprreelliinnkk]] [[--ppttaa]] [[--ppttaallll]] [[--ppttnnoonnee]] [[--ppttuusseedd]] [[--ppttvv]] [[--rr]]
- [[--rr_p_r_o_c_e_s_s_o_r]] [[--SS]] [[--sshhooww]] [[--ssiiggnneedd]] [[--TTAARRGG::......]] [[--TTEENNVV::......]] [[--ttrraappuuvv]]
- [[--UU _n_a_m_e]] [[--uussee__rreeaaddoonnllyy__ccoonnsstt]] [[--uussee__rreeaaddwwrriittee__ccoonnsstt]] [[--vv]] [[--vveerrssiioonn]]
- [[--WW _c,_a_r_g_1[[,,_a_r_g_2......]]]] [[--ww]] [[--ww22]] [[--wwooffff aallll]] [[--wwooffff _n_u_m_b_e_r_l_i_s_t]]
- [[--XXccpplluussccoommmm]] [[--YY _c,_p_a_t_h]]
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- IRIX systems
-
- DDEESSCCRRIIPPTTIIOONN
- This man page describes the cccc(1), cc8899(1), and CCCC(1) commands.
-
- The cccc command invokes the MIPS and MIPSpro C compiler and the source
- preprocessor on source files that contain C code.
-
- The CCCC command invokes the MIPSpro C++ compiler.
-
- The cc8899 command is used to invoke the C compiler when the environment
- variable __XXPPGG is defined. The command then operates in conformance
- with the X/Open XPG4 standard. Option or command-line differences
- that may occur due to conformance to this standard are noted in the
- option descriptions.
-
- Throughout this man page, the differences between the C and C++
- compilers are noted when appropriate. When there is no difference,
- the phrases, _t_h_e _c_o_m_p_i_l_e_r or _t_h_e _C/_C++ _c_o_m_p_i_l_e_r, refer to both
- compilers.
-
- By default, the compiler creates an executable file named aa..oouutt.
- Other files used and created by the compiler are discussed under the
- FILES section of this man page. See the lldd(1) man page for load-time
- options.
-
- If conflicting options are specified, the option specified last on the
- command line overrides the previously specified option. Exceptions to
- this rule are noted in the individual option descriptions.
-
- Most ##pprraaggmmaa directives override corresponding command-line options.
- Exceptions to this rule are noted in the option descriptions on this
- man page or in the ##pprraaggmmaa directive descriptions in the _M_I_P_S_p_r_o _C _a_n_d
- _C++ _P_r_a_g_m_a_s manuals.
-
- Some command options, for example, --LLIISSTT, --LLNNOO, --MMPP, --OOPPTT, --TTAARRGG, and
- --TTEENNVV, accept several arguments and allow you to specify a setting for
- each argument. To specify multiple arguments, either use colons to
- separate each argument or specify multiple options on the command
- line. For example, the following command lines are equivalent:
-
- cc -LIST:notes=ON:options=OFF b.f
- cc -LIST:notes=ON -LIST:options=OFF b.f
-
- The SGI compilers support three different Application Binary
- Interfaces, which are controlled by the following options (see the
- aabbii(5) man page for more information about these interfaces):
-
- OOppttiioonn AAccttiioonn
-
- --oo3322 or --3322 Generates an (old) 32-bit object. (See the oo3322(5)
- man page for option descriptions and details.)
- This defaults to --mmiippss22 if --mmiippss11 has not been
- specified. See the ppee__eennvviirroonn(5) man page for
- information on the CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH
- environment variable.
-
- --nn3322 Generates a (new) 32-bit object. This defaults to
- --mmiippss33 if --mmiippss44 has not been specified.
-
- --6644 Generates a 64-bit object. This defaults to
- --mmiippss44 if --mmiippss33 has not been specified. See the
- ppee__eennvviirroonn(5) man page for information on the
- CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH environment variable.
-
- The following alphabetized list of options are valid in the N32 and 64
- ABIs. See the oo3322(5) man page for options that are specific to the
- O32 ABI. Unless otherwise specified in the option description, the
- following options apply to the cccc, cc8899, and CCCC commands.
-
- ---- In XPG4 mode, standard utilities that accept operands but not
- options, will recognize ---- as the first argument to be
- discarded. This is required because portable applications
- need a way to shield their operands from any arbitrary options
- that the implementation may provide as an extension.
-
- For example, if the standard utility ffoooo is listed as taking
- no options, and the application needed to give it a pathname
- with a leading hypen, it could safely do it as: ffoooo ---- --mmyyffiillee
- and avoid any problems with --mm used as an extension.
-
- --aallll If specified just before a ..aa file (archive library), the
- linker pulls the entire archive into the shared object, not
- just the object files needed for the link (which is the
- default). This option applies to all subsequent ..aa files in
- the command line. This option cannot be specified with the --cc
- option.
-
- See the lldd(1) man page for more information about shared
- libraries and archives.
-
- --aannaacchh (CCCC only) Allows anachronistic C++ constructs.
-
- --aannssii
- --cccckkrr
- --xxaannssii (cccc only) Enables pure ANSI/ISO C mode. To see a list of
- defined symbols, enter the cccc --sshhooww ffoooo..cc command and see
- which symbols have been added as --DDssyymmbbooll__nnaammee. xxaannssii (the
- default) enables ANSI/ISO C with all the same definitions as
- K&R/Version7 C mode (--aannssii). ____SSTTDDCC____ and ____EEXXTTEENNSSIIOONNSS____ are
- defined, many symbols are added into the namespace, and
- ____IINNLLIINNEE__IINNTTRRIINNSSIICCSS is defined and may cause some intrinsic
- <<mmaatthh..hh>>, <<ssttddiioo..hh>>, <<ssttrriinngg..hh>>, and <<ccuurrsseess..hh>> library
- functions to be inlined. Such inlined functions may not set
- eerrrrnnoo in accordance with the strict ANSI/ISO C standard
- requirements. --xxaannssii is the default used by the compiler
- unless the environment variable SSGGII__CCCC is set. See the
- ppee__eennvviirroonn(5) man page for more information on environment
- variables. If specified with --cccckkrr or --aannssii, the last option
- specified is effective and the rest are ignored. If specified
- with --aannssii or --xxaannssii, the last option specified is effective
- and the rest are ignored.
-
- NOTE: When compiling in pure ANSI/ISO mode, several standard
- UNIX symbols (for example, eennvviirroonn, eenndd) may only be
- referenced by their ANSI/ISO-compliant counterparts (for
- example, __eennvviirroonn, __eenndd). The type lloonngg lloonngg is allowed, but
- results in a warning. To take advantage of this type in
- libraries that refer to ____iinntt6644__tt and ____uuiinntt6644__tt, you must
- define the macro ____LLOONNGGLLOONNGG on the command line; otherwise,
- ____iinntt6644__tt and ____uuiinntt6644__tt are defined as structs.
-
- --aannssiiEE (CCCC only) Issues an error message on all code that is not
- standard-conforming. Available in ANSI/ISO C conformance (see
- --aannssii).
-
- --aannssiiWW (CCCC only) Issues a warning message on all code that is not
- standard-conforming. This is the default in pure ANSI/ISO C
- mode. Available in ANSI/ISO C conformance (see --aannssii).
-
- --aappoo, --aappookkeeeepp, --aappoolliisstt
- For --nn3322 and --6644, it invokes the Auto-Parallelizing Option
- (APO), which automatically converts sequential code into
- parallel code by inserting parallel directives where it is
- safe and beneficial to do so. Specifying --aappoo also sets the
- --mmpp option. Both --aappookkeeeepp and --aappoolliisstt produce a listing
- file, _f_i_l_e..lliisstt. Specifying --aappookkeeeepp retains _f_i_l_e..aannll and
- _f_i_l_e..mm, which can be used by the parallel analyzer, ProDev
- ProMP (see the EXAMPLES section). When the --IIPPAA option is
- specified with --aappookkeeeepp, the default settings for IPA
- suboptions are used with the exception of --IIPPAA::iinnlliinnee, which
- is set to OOFFFF.
-
- APO is invoked only if you are licensed for it. For licensing
- information, see your sales representative.
-
- For more information on APO, its directives, and command-line
- options, see _M_I_P_S_p_r_o _C _a_n_d _C++ _P_r_a_g_m_a_s.
-
- When specifying the --oo3322 option on the cccc command line, --aappoo
- invokes the IRIS Power C analyzer (PCA). See the --ppccaa option
- description.
-
- --aarr Creates an archive using aarr(1) instead of a shared object or
- executable. The name of the archive is specified by using the
- --oo option. Template entities required by the objects being
- archived are instantiated before creating the archive. The CCCC
- command implicitly passes the --rr and --cc options of aarr to aarr in
- addition to the name of the archive and the objects being
- created. Any other option that can be used in conjunction
- with the --cc option of aarr can be passed to aarr using
- --WWRR,,ooppttiioonn__nnaammee. For more information, see the aarr(1) man
- page.
-
- NOTE: The objects specified with this option must include all
- of the objects that will be included in the archive. Failure
- to do so may cause prelinker internal errors. In the
- following example, lliibbaa..aa is an archive containing only aa..oo,
- bb..oo and cc..oo. The aa..oo, bb..oo and cc..oo objects are prelinked to
- instantiate any required template entities, and the aarr --rr --cc
- --vv lliibbaa..aa aa..oo bb..oo cc..oo ccoommmmaanndd iiss eexxeeccuutteedd.. AAllll tthhrreeee oobbjjeeccttss
- mmuusstt bbee ssppeecciiffiieedd wwiitthh --aarr eevveenn iiff oonnllyy bb..oo nneeeeddss ttoo bbee
- rreeppllaacceedd iinn lliibb..aa..
-
- CC -ar -WR,-v -o liba.a a.o b.o c.o
-
- See the lldd(1) man page for more information about shared
- libraries and archives.
-
- --aauuttoo__iinncclluuddee
- --nnoo__aauuttoo__iinncclluuddee
- (CCCC only) The default is --aauuttoo__iinncclluuddee. The compiler
- implicitly includes template definition files if such
- definitions are needed. --nnoo__aauuttoo__iinncclluuddee disables implicit
- inclusion of template implementation files. See the _C++
- _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e for more information on using templates.
-
- --bbiiggpp__ooffff
- Disables the use of large pages within your program. This is
- the default for all optimization levels except --OOffaasstt.
-
- --bbiiggpp__oonn
- Enables the use of large pages within your program. Once your
- program is compiled with this flag, you must also set the
- PPAAGGEESSIIZZEE__DDAATTAA, PPAAGGEESSIIZZEE__SSTTAACCKK, and PPAAGGEESSIIZZEE__TTEEXXTT environment
- variables to be one of the values 16, 256, 1024, 4096, 16384
- (representing the size in kilobytes of the pages you want to
- use). If these environment variables are not set, then by
- default your program will use 16KB pages. This flag is turned
- on when --OOffaasstt is specified.
-
- --bbrriieeff__ddiiaaggnnoossttiiccss
- Issues one-line diagnostic messages.
-
- --cc Creates a relocatable object file for each named source file,
- but does not link the object files. The relocatable object
- file name corresponds to the name of the source file; a ..oo
- suffix is substituted for the suffix of the source file.
-
- --cccckkrr (cccc only) See the --aannssii option description.
-
- --ccffrroonntt (CCCC only) Causes the compiler to accept constructs that were
- accepted by previous cfront-based compilers, such as OOCCCC, but
- which are not accepted in the ANSI/ISO standard.
-
- --cclliisstt Enables the C listing. Specifying --cclliisstt is the equivalent of
- specifying --CCLLIISSTT::==OONN.
-
- --CCLLIISSTT:: ......
- Controls emission of the compiler's internal program
- representation back into C code, after IPA inlining and loop-
- nest transformations. This is a diagnostic tool, and the
- generated C code may not always be compilable. The generated
- C code is written to two files, a header file containing
- file-scope declarations, and a file containing function
- definitions. The individual controls in this group are as
- follows:
-
- == (( OONN||OOFFFF ))
- Enables the C listing. This option is implied by any of
- the others, but may be used to enable the listing when no
- other options are required. For example, specifying
- --CCLLIISSTT::==OONN is the equivalent of specifying --cclliisstt.
-
- ddoottcc__ffiillee== _f_i_l_e_n_a_m_e
- Writes the program units into the specified file,
- _f_i_l_e_n_a_m_e. The default source file name has the extension
- ..ww22cc..cc.
-
- ddootthh__ffiillee== _f_i_l_e_n_a_m_e
- Specifies the file into which file-scope declarations are
- deposited. Defaults to the source file name with the
- extension ..ww22cc..hh.
-
- eemmiitt__oommpp [[ == (( OONN||OOFFFF ))]]
- When OONN is specified, generated files use OpenMP
- directives (default). When OOFFFF is specified, generated
- files use MIPS multiprocessing directives, which are
- outmoded.
-
- eemmiitt__ppffeettcchh [[ == (( OONN||OOFFFF ))]]
- Displays prefetch information as comments in the
- transformed source. If OONN or OOFFFF is not specified, the
- default is OOFFFF.
-
- lliinneelleennggtthh== _n
- Sets the maximum line length to _n characters. The
- default is unlimited.
-
- sshhooww [[ == (( OONN||OOFFFF ))]]
- Prints the input and output file names to stderr. If OONN
- or OOFFFF is not specified, the default is OONN.
-
- --ccoommmmoonn Relaxes the ANSI/ISO C Strict-Ref/Def-initialization model to
- the traditional IRIX Relaxed Ref/Def model. With --ccoommmmoonn, the
- declaration iinntt ii;; in multiple files at file level is merged.
- Without it, ANSI/ISO C generates a warning (from lldd(1)) about
- duplicate definitions. When C and Fortran compiled objects
- are linked together and an ANSI C defined variable should be
- located at the same address as a Fortran common block, you
- must compile the C source with the --ccoommmmoonn flag. When
- compiling in traditional K&R/Version7 C mode (see --cccckkrr), the
- --ccoommmmoonn option is ignored.
-
- --DD _n_a_m_e=_d_e_f
- --DD _n_a_m_e Define _n_a_m_e to the macro preprocessor, as if by ##ddeeffiinnee. If
- no definition is given, _n_a_m_e is defined as 11.
-
- --DDEEBBUUGG:: ......
- Controls compiler features related to debugging, such as
- checking for possible errors (at compile time or execution
- time), or controlling the treatment of warning messages. See
- the DDEEBBUUGG__ggrroouupp((55)) man page for more information, including
- the individual options in this group. See also the --gg option
- for controlling emission of information for the debugger.
-
- --ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t
- Treats messages with the specified numbers as errors and does
- not generate an object file. _n_u_m_b_e_r_l_i_s_t is a comma-separated
- list of message numbers.
-
- --ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t
- Treats messages with the specified numbers as remarks unless
- they are nondiscretionary errors. _n_u_m_b_e_r_l_i_s_t is a comma-
- separated list of message numbers. The messages specified by
- this option are reported only if --ffuullllwwaarrnn is specified.
-
- --ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t
- Equivalent to specifying --wwooffff _n_u_m_b_e_r_l_i_s_t. _n_u_m_b_e_r_l_i_s_t is a
- comma-separated list of message numbers.
-
- --ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t
- Treats messages with the specified numbers as warnings unless
- they are nondiscretionary errors. _n_u_m_b_e_r_l_i_s_t is a comma-
- separated list of message numbers. If ww is also specified,
- the messages specified by this option are not reported.
-
- --ddoollllaarr Allows the dollar sign ($) as a character in C identifiers
- (including the leading character of an identifier). The
- option is provided solely for compatibility purposes. The
- dollar sign is not a standard C identifier character and its
- use is not recommended.
-
- --EE Runs only the preprocessor phase on the source files and sends
- the result to standard output. The resultant output will
- contain line directives. This option overrides the --nnooccpppp
- option.
-
- --ffbb <<_f_i_l_e>>
- Specifies the feedback file (_f_i_l_e) to be used as input to the
- compilation. This feedback file can be produced by using
- pprrooff(1) with its --ffeeeeddbbaacckk option from one or more ..CCoouunnttss
- files generated by the execution of the instrumented program
- produced by ppiixxiiee(1).
-
- --ffbb__ccrreeaattee <<_p_a_t_h>
- Generates an instrumented executable program which is suitable
- for producing one or more ..iinnssttrr files for subsequent feedback
- compilation. When the --cc option is used to produce an object
- file that eventually linked to form an instrumneted
- executable, the --ffbb__ccrreeaattee option should also be specified.
- The executable will be instrumented with special instructions
- that generates information that the compiler can use to better
- optimize your program. When this instrumented executable is
- run (usually with a representative "training" inputset) that
- information is stored in a file call aa..oouutt..iinnssttrr..<<_p_i_d>> in the
- <_p_a_t_h> directory that you specified. The path should be a
- complete path that also includes the name of the executable.
- For example, //ttmmpp//ffbbddiirr//aa..oouutt would produce a file called
- //ttmmpp//ffbbddiirr//aa..oouutt..iinnssttrr..<<_p_i_d>> where <_p_i_d> is the process id of
- the invocation of your instrumented program run with a
- training input.
-
- --ffbb__oopptt <_p_a_t_h>
- Specifies the directory that contains the instrumentation
- output generated by compiling with --ffbb__ccrreeaattee and then running
- your program with a training inputset. This tells the
- compiler to use this information to better optimize your
- program. When the --cc option is used to produce an object file
- that is eventually linked to form an instrumented executable,
- the --ffbb__oopptt option should also be specified.
-
- --ffbbggeenn Generates an instrumented executable program. Such an
- executable is suitable for producing one or more ..CCoouunnttss files
- for feedback compilation. When the --cc option is used to
- produce an object file that is eventually linked to form an
- instrumented executable, the --ffbbggeenn option should also be
- specified. If the --cc option is not specified, ppiixxiiee(1) is run
- automatically to instrument the generated executable. Run the
- ..xx executable file that is generated without the ..xx suffix.
-
- --ffbbuussee <<_f_i_l_e>>
- Specifies a ..CCoouunnttss file that is used to guide feedback
- compilation. The specified file is used along with the
- instrumented binary that produced the ..CCoouunnttss file to generate
- a compiler feedback file, which is then used to direct
- optimization of the program. Run the ..xx executable file that
- is generated without the ..xx suffix.
-
- --FFEE::eelliimmiinnaattee__dduupplliiccaattee__iinnlliinnee__ccooppiieess
- (CCCC only) Eliminates duplicate copies of functions that are
- declared inline but for which an out-of-line copy must be
- generated (typically, these are destructors or virtual
- functions). Specifying this option may alleviate the problem
- of large executables or DSOs built with the default template
- instantiation options.
-
- --FFEE::tteemmppllaattee__iinn__eellff__sseeccttiioonn
- (CCCC only) Eliminates duplicate template instantiations from an
- executable or DSO. This option should be used when the
- --ppttuusseedd option is specified to avoid duplicate template
- instantiations in the executable or DSO.
-
- --ffllooaatt The --ffllooaatt option is ignored in ANSI/ISO C conformance mode
- and only has effect in --cccckkrr mode. ANSI/ISO C conformance
- mode uses single precision floating-point operations where
- allowed by the Standard. This option causes the compiler to
- use single-precision floating-point whenever float is
- specified (except in function arguments). In the following
- example, aa and bb are promoted to double and a double-precision
- multiply is done, followed by a conversion back to single-
- precision for the assignment to cc.
-
-
- ffllooaatt aa;; iinntt bb;; ffllooaatt cc;; cc == aa ** bb;;
-
- bb is promoted to single-precision and a single-precision
- multiply is done. This option does not affect float and
- double argument passing; float function arguments are promoted
- to double unless function prototypes are used. Unsuffixed
- floating-point constants are cast to single precision values
- in subexpressions with no double (or long double) operands.
-
- --ffllooaatt__ccoonnsstt
- Interprets floating point constants without precision suffixes
- as single-precision whenever doing so will not lose precision
- and the context is otherwise single-precision. This may
- prevent unnecessary conversions between single- and double-
- precision in ANSI/ISO C conformance mode when the variables
- involved have all been declared as float but the constants
- have not been appended with ff.
-
- --ffuullllwwaarrnn
- Performs various extra checks and produces additional warnings
- that are normally suppressed by default. For --nn3322 and --6644,
- these warnings are called remarks.
-
- --GG _n_u_m Specifies the maximum size (in bytes) of a data item that is
- to be accessed from the global pointer. _n_u_m must be a
- positive integral number. If _n_u_m is zero, no data is accessed
- from the global pointer. For --nn3322 or --6644, the default value
- is 8 bytes. For --oo3322 shared compiles, the default is 0 bytes;
- for nonshared, the default is 8 bytes.
-
- Data stored relative to the global pointer can be accessed by
- the program quickly, but this space is limited. Large
- programs may overflow the space accessed by the global pointer
- at load time. If the loader gives the error message BBaadd --GG
- nnuumm vvaalluuee, recompile specifying a lower value for _n (or add
- --GG00 if no --GG was specified. You should usually use the same
- value of this switch for compiling all files that comprise a
- program executable for DSO.
-
- --gg[_n] Specifies the debugging information produced by the compiler.
- _n can be one of the following:
-
- 00 No debugging information for symbolic debugging is
- produced. This is the default.
-
- 22 Produces additional debugging information for full
- symbolic debugging. Optimizations that limit full
- symbolic debugging are not done. This overrides the
- optimization options (--OO, --OO11, --OO22, --OO33).
-
- 33 Produces additional debugging information for symbolic
- debugging of fully optimized code, which makes the
- debugger inaccurate. This can be used with the
- optimization options (--OO, --OO11, --OO22, --OO33).
-
- Specifying --gg without a debug level is equivalent to
- specifying --gg22.
-
- --ggsslliimm (CCCC only) Limits the amount of debugging information generated
- by the compiler for class definitions. You can use this
- option on large applications when you experience bloated
- object files, executables, or DSOs when compiling with the --gg
- option. If you specify --ggsslliimm instead of --gg, debugging
- information for any class with non-inline member functions is
- generated only in translation units containing a definition
- for one of those non-inline member functions. Otherwise, the
- effect of specifying --ggsslliimm is the same as that of specifying
- --gg. If both --gg and --ggsslliimm are specified, the effect is the
- same as if only --ggsslliimm was specified, regardless of the order
- in which the options are specified on the command line.
-
- --hheellpp Lists all of the available options.
-
- --II _d_i_r Searches directories for ##iinncclluuddee files whose names do not
- begin with //. Directories are searched in the following
- order: directory of the _f_i_l_e argument, directories specified
- in --II options, and the standard directory (//uussrr//iinncclluuddee).
-
- --iiggnnoorree__ssuuffffiixx
- Determines the language of the source file being compiled by
- the command used to invoke the compiler. By default, the
- language is determined by the file suffixes (..cc, ..ccpppp, ..CC,
- ..ccxxxx, ..ff, ..ff9900, ..ss). When the --iiggnnoorree__ssuuffffiixx option is
- specified, the cccc command invokes the C compiler.
-
- --IINNLLIINNEE:: ......
- The standalone inliner option group controls application of
- intra-file subprogram inlining when interprocedural analysis
- is not enabled (see the --IIPPAA description). See the iippaa((55)) man
- page for more information, including the individual options in
- this group.
-
- --IIPPAA:: ......
- The inter-procedural analyzer option group controls
- application of inter-procedural analysis and optimization,
- including inlining, constant propagation, common block array
- padding, dead function elimination, alias analysis, and
- others. Specify --IIPPAA by itself to invoke the interprocedural
- analysis phase with default options. If you compile and link
- in distinct steps, you must specify at least --IIPPAA for the
- compile step, and specify --IIPPAA and the individual options in
- the group for the link step. If you specify --IIPPAA for the
- compile step, and do not specify --IIPPAA for the link step, you
- will receive an error. See the iippaa(5) man page for more
- information, including the individual options in this group.
-
- --JJ # (CCCC only) Specifies the maximum number of concurrent compiles
- that the C++ prelinker is allowed to run at once. This option
- overrides the number of concurrent compiles that the prelinker
- determines using the following rules: The maximum number of
- concurrent compiles is set to 1 unless the prelinker is a
- descendent of an ssmmaakkee(1) or a ppmmaakkee command that specifies
- the number of jobs using the --JJ option, then # is used as the
- value for the number of concurrent compiles. If the prelinker
- is a descendent of an ssmmaakkee or ppmmaakkee command without the --JJ
- option, the maximum number of concurrent compiles is set to 2
- on a single processor system and 4 on a multi-processor that
- has more than 1 unrestricted processor.
-
- --KKPPIICC Generates position-independent code (PIC). This is the
- default and is needed for programs linking with dynamic shared
- libraries. If you do not want to generate PIC, specify
- --nnoonn__sshhaarreedd on the command line.
-
- --LL _d_i_r_e_c_t_o_r_y
- In XPG4 mode, changes the algorithm of searching for libraries
- named in --LL operands to look in the specified directory before
- looking in the default location. Directories specified in --LL
- options are searched in the specified order. Multiple
- instances of --LL options can be specified.
-
- --ll _l_i_b_r_a_r_y
- In XPG4 mode, searches the specified _l_i_b_r_a_r_y. A library is
- searched when its name is encountered, so the placement of a
- --ll operand is significant.
-
- --LLAANNGG:: ......
- The language feature option group controls the source language
- interpretation assumed by the compiler. The individual
- controls in this group are as follows:
-
- aalliiaass__ccoonnsstt [[ == (( OONN||OOFFFF ))]]
- Enables or disables optimization across functions with
- ccoonnsstt reference parameters. Assumes that a ccoonnsstt
- reference parameter is NOT modified by the called
- function. See the release notes for details and examples
- of this optimization. Default is OFF.
-
- NOTE: For this optimization to work correctly, both the
- caller and the callee have to be compiled with
- --LLAANNGG::aalliiaass__ccoonnsstt.
-
- aannssii--ffoorr--iinniitt--ssccooppee [[ == (( OONN||OOFFFF )) ]]
- Enables or disables the ANSI scoping rules for ffoorr--iinniitt
- declarations (the scope of the name declared extends to
- the end of the ffoorr statement). This enables the behavior
- that is required by the C++ standard. The default value
- is OFF, which is the ARM behavior (the scope of the name
- declared extends to the end of the block enclosing the ffoorr
- statement).
-
- bbooooll [[ == (( OONN||OOFFFF ))]]
- Enables or disables the predefined bool data type, along
- with the predefined values true and false. Use this
- option only to suppress this type in old code that defines
- bool itself. Because this option changes the mangling of
- function names with bool parameters, all files comprising
- a program should be compiled with consistent options.
- Default is ON.
-
- The __BBOOOOLL feature macro can be used in ##iiffddeeffs to do
- conditional compilation based on whether or not this
- option is enabled.
-
- ccrreeaattee__ppcchh==_f_i_l_e-_n_a_m_e
- Creates a precompiled header with the specified _f_i_l_e-_n_a_m_e.
- This option cannot be specified with --LLAANNGG::ppcchh or
- --LLAANNGG::uussee__ppcchh.
-
- eexxcceeppttiioonnss [[ == (( OONN||OOFFFF ))]]
- Enables or disables exception handling constructs in the
- language. Generally, code with and without exception
- handling cannot be mixed. Specifically, the scopes
- crossed between throwing and catching an exception must
- all have been compiled with eexxcceeppttiioonnss==OONN. Default is ON.
-
- In the O32-bit mode, exceptions are OFF by default and can
- be turned on by the --eexxcceeppttiioonnss flag. See the --oo3322(5) man
- page for details.
-
- The feature macro ____EEXXCCEEPPTTIIOONNSS can be used in ##iiffddeeffss to
- do conditional compilation based on whether or not this
- option is enabled.
-
- eexxpplliicciitt [[ == (( OONN||OOFFFF ))]]
- Enables or disables the recognition of explicit as a
- keyword. Default is ON.
-
- The __EEXXPPLLIICCIITT__IISS__KKEEYYWWOORRDD feature macro can be used in
- ##iiffddeeffs to do conditional compilation based on whether or
- not this option is enabled.
-
- mmuuttaabbllee [[ == (( OONN||OOFFFF ))]]
- Enables or disables the recognition of mutable as a
- keyword. Default is ON.
-
- The __MMUUTTAABBLLEE__IISS__KKEEYYWWOORRDD feature macro can be used in
- ##iiffddeeffss to do conditional compilation based on whether or
- not this option is enabled.
-
- nnaammeessppaacceess [[ == (( OONN||OOFFFF ))]]
- Enables or disables namespace feature of the language.
- This feature changes the signature of functions and for
- backward compatibility, the library functions in lliibbCC
- continue to be in global namespace. Default is ON.
-
- ppcchh [[ == (( OONN||OOFFFF ))]]
- Automatically uses or creates a precompiled header file.
- This option cannot be specified with --LLAANNGG::uussee__ppcchh or
- --LLAANNGG::ccrreeaattee__ppcchh.
-
- A precompiled header file contains a snapshot of all the
- code preceding the "header stop" point, which is generally
- the first token in the primary source file that does not
- belong to a preprocessing directive. Use of precompiled
- headers may speed up compilation in certain cases. For
- details on precompiled header files, see the _M_I_P_S_p_r_o
- _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e.
-
- ppcchh__ddiirr==_d_i_r_e_c_t_o_r_y-_n_a_m_e
- Searches _d_i_r_e_c_t_o_r_y-_n_a_m_e and/or creates a precompiled
- header file. This option can be specified with --LLAANNGG::ppcchh,
- --LLAANNGG::ccrreeaattee__ppcchh, and --LLAANNGG::uussee__ppcchh. When specified with
- --LLAANNGG::ccrreeaattee__ppcchh or --LLAANNGG::uussee__ppcchh, the indicated filename
- is appended to the directory specified by this name,
- unless the file name is an absolute path name.
-
- rreessttrriicctt==OONN
- Enables support for the restrict keyword in the language.
-
- ssttdd Enables use of the standard C++ library and standard-
- conforming iostream library. Specifying this flag also
- triggers other standard-conforming behavior, such as the
- new rules for the scope of ffoorr loop initializers.
-
- The following example shows how to use the complex header
- in conjunction with --LLAANNGG::ssttdd:
-
- #ifdef _STANDARD_C_PLUS_PLUS
- // If -LANG:std is specified, it defines the macro
- // in the preceding line. Use new-style headers
- // and a using directive to bring names from the
- // std namespace into the global namespace.
- #include<complex>
- #include<iostream>
- using namespace std;
- #else
- // If -LANG:std is not specified, use old-style headers,
- // and there is no need for a using directive.
- #include<complex.h>
- #include<iostream.h>
- #endif
-
- complex<float> x(1,2);
-
- main() {
- cout << x << '0;
- cout << sqrt( x ) << '0;
- }
-
- For more information on the standard C++ library and
- standard-conforming iostream library, see the MIPSpro 7.3
- release notes (you can use the rreellnnootteess(1) command) or the
- C++ standard documentation.
-
- ttyyppeennaammee [[ == (( OONN||OOFFFF ))]]
- Enables or disables the recognition of typename as a
- keyword. Default is ON.
-
- uussee__ppcchh==_f_i_l_e-_n_a_m_e
- Specifies the precompiled header, _f_i_l_e-_n_a_m_e, if it is
- valid for this compilation unit. The compilation proceeds
- with a warning if the ppcchh file cannot be used. This
- option cannot be specified with --LLAANNGG::ppcchh or
- --LLAANNGG::ccrreeaattee__ppcchh.
-
- wwcchhaarr__tt [[ == (( OONN||OOFFFF ))]]
- Enables or disables the predefined wwcchhaarr__tt data type. Use
- this option only to suppress this type in old code that
- defines wwcchhaarr__tt itself. Because this option changes the
- mangling of function names with wwcchhaarr__tt parameters, all
- files that comprise a program should be compiled with
- consistent options. Default is ON.
-
- The feature macro __WWCCHHAARR__TT__IISS__KKEEYYWWOORRDD can be used in
- ##iiffddeeffs to do conditional compilation based on whether or
- not this option is enabled.
-
- vvllaa [[ == (( OONN||OOFFFF ))]]
- Provides the C9X extension for variable length arrays.
- The default for cccc is OONN; the default for CCCC is OOFFFF.
-
- --LLIISSTT:: ......
- The listing option flag controls information that gets written
- to a listing (..ll) file. The individual controls in this group
- are:
-
- == (( OONN||OOFFFF )) Enables or disables writing the listing file.
- The default is OONN if any --LLIISSTT:: group options are
- enabled. By default, the listing file contains a
- list of options enabled.
-
- aallll__ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
- Enables or disables listing of most supported
- options. The default is OOFFFF.
-
- nnootteess [[ == (( OONN||OOFFFF ))]]
- If an assembly listing is generated (for example,
- on --SS), various parts of the compiler (such as
- software pipelining) generate comments within the
- listing that describe what they have done.
- Specifying OOFFFF suppresses these comments. The
- default is OONN.
-
- ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
- Enables or disables listing of the options
- modified (directly in the command line, or
- indirectly as a side effect of other options).
- The default is OOFFFF.
-
- ssyymmbboollss [[ == (( OONN||OOFFFF ))]]
- Enables or disables listing of information about
- the symbols (variables) managed by the compiler.
-
- --LLNNOO Specifies options and transformations performed on loop nests.
- This option is enabled only if the --OO33 option is also
- specified on the compiler command line. For information on
- the LNO options that are in effect during a compilation, use
- the --LLIISSTT option. See the llnnoo(5) man page for more
- information, including the individual options in this group.
-
- --MM Runs only the preprocessor on the named files and writes
- mmaakkee(1) dependencies to standard output.
-
- --MMDDuuppddaattee _f_i_l_e_n_a_m_e
- Updates _f_i_l_e_n_a_m_e to contain mmaakkee(1) dependencies for the
- output file. --MMDDuuppddaattee updates only lines in _f_i_l_e_n_a_m_e that
- end with a distinctive mmaakkee comment and begin with the name of
- the output file followed by a colon. The standard option used
- with mmaakkee(1) is --MMDDuuppddaattee MMaakkeeddeeppeenndd.
-
- --mmiippss_n Specifies the Instruction Set Architecture (ISA). _n can be
- one of the following:
-
- 11 Generates code using the instruction set of the
- R2000/R3000 RISC architecture, and searches for mips1
- libraries/objects at link-time. This defaults to --oo3322.
-
- 22 Generates code using the MIPS II instruction set (MIPS I +
- R4000 specific extensions), and searches for mips2
- libraries/objects at link-time. This defaults to --oo3322.
-
- 33 Generates code using the full MIPS III instruction set,
- and searches for mips3 libraries/objects at link-time. If
- --nn3322 or --6644 are not specified, this defaults to --6644 on
- R8000-based systems and --nn3322 on all other systems.
-
- 44 Generates code using the full MIPS IV instruction set
- which is supported on R10000, R5000 and R8000 systems, and
- searches for mips4 libraries/objects at link-time. This
- is the default on R8000 systems. If --nn3322 or --6644 are not
- specified, this defaults to --6644 on R8000-based systems and
- --nn3322 on all other systems.
-
- --MMPP:: ......
- Specifies individual multiprocessing options that provide fine
- control over certain optimizations. You must also specify the
- --mmpp option on the command line. This enables all the --MMPP
- options.
-
- The arguments to the --MMPP option are as follows:
-
- AArrgguummeenntt AAccttiioonn
-
- cchheecckk__rreesshhaappee==_s_e_t_t_i_n_g
- Enables or disables runtime consistency
- checks across procedure boundaries when
- passing reshaped arrays (or portions
- thereof) as actual arguments. Specify
- OONN or OOFFFF for _s_e_t_t_i_n_g. The default is
- cchheecckk__rreesshhaappee==OOFFFF.
-
- cclloonnee==_s_e_t_t_i_n_g Enables or disables autocloning.
- Specify OONN or OOFFFF for _s_e_t_t_i_n_g. The
- compiler automatically duplicates
- procedures that are called with reshaped
- arrays as actual arguments for the
- incoming distribution. If you have
- explicitly specified the distribution on
- all relevant dummy arguments, you can
- disable autocloning. The consistency
- checking of the distribution between
- actual and dummy arguments is not
- affected by this option and is always
- enabled. The default is cclloonnee==OONN.
-
- ddssmm==_s_e_t_t_i_n_g (Origin series systems only)
- Enables or disables recognition of the
- distributed shared memory directives.
- Specify OONN or OOFFFF for _s_e_t_t_i_n_g. The
- default is ddssmm==OONN.
-
- oolldd__mmpp==_s_e_t_t_i_n_g Enables or disables recognition of the
- Silicon Graphics multiprocessing
- directives and the Origin series
- distributed shared memory directives.
- These directives are the loop-level
- multiprocessing directives (including
- those for Origin series systems) and the
- PCA directives. Specify OONN or OOFFFF for
- _s_e_t_t_i_n_g. The default is oolldd__mmpp==OONN.
-
- ooppeenn__mmpp==_s_e_t_t_i_n_g Enables or disables recognition of the
- OpenMP C/C++ API multiprocessing
- directives and the Silicon Graphics
- extensions to OpenMP. These directives
- begin with an oommpp prefix. Specify OONN or
- OOFFFF for setting. The default is OONN.
-
- --mmpp Generates multiprocessing code for the files being compiled.
- This option causes the compiler to recognize all
- multiprocessing directives.
-
- If you are licensed for APO, specify the --aappoo option which
- invokes APO and sets the --mmpp option. See the --aappoo option
- description for details.
-
- --mmpplliisstt This option generates file ffiillee..ww22cc..cc. If you are licensed
- for APO, use the aappoolliisstt option. See the --aappoolliisstt option
- description for details.
-
- For more information on multiprocessing directives for the O32
- ABI, see the _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
-
- --nnooccpppp (cccc only) Does not run the preprocessor phase on the source
- files. This option is ignored when compiling a ..ii file.
-
- --nnooiinnlliinnee
- Suppresses expansion of inline functions. When this option is
- specified, copies of inline functions are emitted as static
- functions in each compilation unit where they are called. It
- is preferable to use --IINNLLIINNEE::==OOFFFF or --IIPPAA::iinnlliinnee==OOFFFF if you
- are using IPA (see iippaa(5)). One of these options must be
- specified if you are using IPA.
-
- --nnoonn__sshhaarreedd
- Builds a nonshared object. This is the opposite of --KKPPIICC.
- The --nnoonn__sshhaarreedd option causes the linker to search the
- nnoonnsshhaarreedd subdirectory of each default library search
- directory. For more information, see the lldd(1) man page. The
- linker defaults the archive extensions from ..ssoo to ..aa. The
- appropriate nonshared library images must be installed.
-
- --nnoo__pprreelliinnkk
- (CCCC only) See the --pprreelliinnkk option description.
-
- --nnoonnee Turns off the effects of --aallll for the remainder of the command
- line. This option cannot be specified with the --cc option.
-
- See the lldd(1) man page for more information about shared
- libraries and archives.
-
- --nnoossttddiinncc
- Does not search for ##iinncclluuddee files in the standard directory
- (//uussrr//iinncclluuddee).
-
- --oo _o_u_t_f_i_l_e
- When this option is used in conjunction with the --cc option and
- a single C source file, a relocatable object file named
- _o_u_t_f_i_l_e is produced. When specified with the --SS option, the
- --oo option is ignored. If --oo and --cc are not specified, a file
- named aa..oouutt is produced.
-
- --OO[_n] Specifies the basic level of optimization desired. _n can be
- one of the following:
-
- 00 Turns off all optimizations. This is the default.
-
- 11 Turns on local optimizations that can be done quickly.
-
- 22 Turns on extensive optimization. The optimizations at
- this level are generally conservative, in the sense that
- they are virtually always beneficial, provide
- improvements commensurate to the compile time spent to
- achieve them, and avoid changes which affect such things
- as floating point accuracy.
-
- 33 Turns on aggressive optimization. The optimizations at
- this level are distinguished from --OO22 by their
- aggressiveness, generally seeking highest-quality
- generated code even if it requires extensive compile
- time. They may include optimizations that are generally
- beneficial but may hurt performance.
-
- This option also enables the --OOPPTT::rroouunnddooffff==22 option which
- does aggressive rearrangement of floating point
- calculations with potential effects on accuracy. See the
- oopptt(5), iippaa(5), and llnnoo(5) man pages for additional
- information on general optimization, standalone inliner
- and interprocedural analysis, and loop nest optimizer,
- respectively.
-
- If no value is specified for _n, 2 is assumed.
-
- --OOffaasstt [[ == _i_p_x_x]]
- Selects optimizations that maximize performance for the given
- SGI target platform, _i_p_x_x. These optimizations may differ
- between releases of the compiler and among the supported
- platforms. They enable the full instruction set of the target
- platform (for example, --mmiippss44 for an R10000). Although the
- optimizations are generally safe, they may affect floating
- point accuracy due to rearrangement of computations (for
- examples, see the --OOPPTT::rroouunnddooffff==33 and --OOPPTT::ddiivv__sspplliitt options
- in the oopptt(5) man page). Typical optimizations include --OO33,
- --IIPPAA, --TTAARRGG::ppllaattffoorrmm==_i_p_x_x, --nn3322, and
- --OOPPTT::OOlliimmiitt==00::rroouunnddooffff==33::ddiivv__sspplliitt==OONN::aalliiaass==ttyyppeedd. See the
- --TTAARRGG::ppllaattffoorrmm==_i_p_x_x option for information about the optional
- argument. To determine which options are set by --OOffaasstt, use
- the --LLIISSTT::ooppttiioonnss option. The default is an R10000 Power
- Challenge, IP25.
-
- --OOPPTT::......
- Controls miscellaneous optimizations. This option overrides
- default optimizations. See the oopptt(5) man page for more
- information, including the individual options in this group.
-
- --PP Runs only the preprocessor and puts the result for each source
- file in a corresponding ..ii file. The ..ii file has no inline
- directives in it.
-
- --ppccaa, ppccaakkeeeepp, ppccaalliisstt
- (cccc only; --oo3322 only) Invokes the Power C analyzer (PCA), an
- optimization preprocessor that concurrentizes C by
- restructuring certain parts of code and adding parallel
- programming directives where possible. ppccaakkeeeepp produces the
- file containing the concurrentized C source code, _f_i_l_e..mm.
- ppccaalliisstt _p_r_o_d_u_c_e_s _t_h_e _a_n_n_o_t_a_t_e_d _l_i_s_t_i_n_g _f_i_l_e, _f_i_l_e..ll. _W_h_e_n _t_h_e
- --IIPPAA _o_p_t_i_o_n _i_s _s_p_e_c_i_f_i_e_d _w_i_t_h ppccaakkeeeepp, _t_h_e _d_e_f_a_u_l_t _s_e_t_t_i_n_g_s
- _f_o_r _I_P_A _s_u_b_o_p_t_i_o_n_s _a_r_e _u_s_e_d _w_i_t_h _t_h_e _e_x_c_e_p_t_i_o_n _o_f --IIPPAA::iinnlliinnee,
- _w_h_i_c_h _i_s _s_e_t _t_o OOFFFF.
-
- _P_C_A _i_s _i_n_v_o_k_e_d _o_n_l_y _i_f _y_o_u _a_r_e _l_i_c_e_n_s_e_d _f_o_r _i_t. _F_o_r _l_i_c_e_n_s_i_n_g
- _i_n_f_o_r_m_a_t_i_o_n, _s_e_e _y_o_u_r _s_a_l_e_s _r_e_p_r_e_s_e_n_t_a_t_i_v_e.
-
- _F_o_r _m_o_r_e _i_n_f_o_r_m_a_t_i_o_n _a_b_o_u_t _P_C_A, _s_e_e _t_h_e _I_R_I_S _P_o_w_e_r _C _U_s_e_r'_s
- _G_u_i_d_e.
-
- _F_o_r _t_h_e --nn3322 and --6644 ABIs, these options have been superseded
- by the --aappoo, --aappookkeeeepp, and aappoolliisstt options, if you are
- licensed for APO.
-
- --ppcchh (CCCC only) Use the --LLAANNGG::ppcchh option instead.
-
- --ppeeddaannttiicc
- In ANSI/ISO mode, warns that the ##iiddeenntt preprocessor directive
- is nonstandard.
-
- --pprreelliinnkk
- --nnoo__pprreelliinnkk
- (CCCC only) The default is --pprreelliinnkk (along with --ppttnnoonnee). It
- instructs the compiler to emit information in the object file,
- and in an associated ..iiii file to help the prelinker determine
- which files are responsible for instantiating the various
- template entities referenced in a set of object files. When
- --pprreelliinnkk is on, the compiler reads the associated ..iiii file to
- determine if any template entities should be instantiated.
- When --pprreelliinnkk is on and a link is being performed, the driver
- calls a "template prelinker"; if this prelinker detects
- missing template entities, they are assigned to files (by
- updating the associated ..iiii file), and the prelinker
- recompiles the necessary source files. If --ppttuusseedd or --ppttaallll
- are specified, --nnoo__pprreelliinnkk is the default mode. The compiler
- will not read a ..iiii file to determine which template entities
- should be instantiated, and it will not store any information
- in the object file about which template entities could be
- instantiated by this source file. This option also directs
- the driver not to invoke the template prelinker at link time.
-
- See the C++ Programmer's Guide for more information on using
- templates.
-
- --ppttaa
- --ppttaallll (CCCC only) Template entities declared or referenced in the
- current compilation unit are instantiated. For each fully
- instantiated template class, all of its member functions and
- static data members are instantiated whether or not they are
- used. Nonmember template functions are instantiated even if
- the only reference was a declaration. If --ppttaallll is specified,
- automatic instantiation is turned off. This option may result
- in multiple definitions of template entities, and the linker
- may not remove such duplicates. If automatic instantiation is
- explicitly turned on (by specifying --pprreelliinnkk), then any
- additional template entities that the prelinker instructs the
- compiler to instantiate will also be instantiated.
-
- See the C++ Programmer's Guide for more information on using
- templates.
-
- --ppttnnoonnee (CCCC only) This is the default. No templates entities are
- instantiated. If automatic instantiation is on (--pprreelliinnkk is
- specified) then any template entities that the prelinker
- instructs the compiler to instantiate will be instantiated.
-
- See the C++ Programmer's Guide for more information on using
- templates.
-
- --ppttuusseedd (CCCC only) Template entities used in this compilation unit will
- be instantiated. This includes all static members for which
- there are template definitions. If --ppttuusseedd is specified,
- automatic instantiation is turned off by default. This option
- may result in multiple definitions of template entities and
- the linker may not remove duplicates.
-
- If automatic instantiation is explicitly turned on (by
- specifying --pprreelliinnkk) then any additional template entities
- which the prelinker instructs the compiler to instantiate will
- also be instantiated.
-
- See the C++ Programmer's Guide for more information on using
- templates.
-
- --ppttvv (CCCC only) Prints the name of the template entity and source
- file.
-
- See the C++ Programmer's Guide for more information on using
- templates.
-
- --rr When specified with --IIPPAA and --cc during compilation, the
- resulted object is an ELF relocatable object, not an
- intermediate object. When specified with --IIPPAA::rreelloopptt==oonn, the
- resulting object has non-PIC optimizations performed on it.
-
- --rr_p_r_o_c_e_s_s_o_r
- Specifies the code scheduler. _p_r_o_c_e_s_s_o_r can be one of the
- following options:
-
- Option Action
-
- 44000000 or 44kk Schedules code for the R4000 processor.
-
- 55000000 or 55kk Schedules code for the R5000 processor.
-
- 88000000 or 88kk Schedules code for the R8000 processor.
-
- 1100000000 or 1100kk Schedules code for the R10000 processor.
-
- 1122000000 or 1122kk Schedules code for the R12000 processor.
-
- This option adds the following to the head of the library
- search path, where _p_r_o_c_e_s_s_o_r is as you specified:
-
- -L/usr/lib{32,64}/mips{3,4}/_p_r_o_c_e_s_s_o_r
-
- The actual library search path that is added depends on the
- ABI that is specified or implied. See the --oo3322, --nn3322, and --6644
- option descriptions for more information on specifying an ABI.
- (See the mmaatthh(3) man page for details of math library usage.)
-
- --SS Compiles the specified source files and creates symbolic
- assembly language output files suffixed with ..ss.
-
- --sshhaarreedd The linker creates a shared library instead of an executable
- program. The linker links together all the object files (..oo
- files) and archives (..aa files) in the command line into a
- shared library with the name specified by the --oo option. Any
- other shared libraries in the link line are not included into
- the newly created shared library, although they can be used to
- resolve external symbols during the link. This option cannot
- be specified with the --cc option.
-
- See the lldd(1) man page for more information about shared
- libraries and archives.
-
- --sshhooww Prints the passes as they execute with their arguments and
- their input and output files.
-
- --ssiiggnneedd Causes values of type cchhaarr to be treated as if they had type
- ssiiggnneedd cchhaarr (which can affect the result of integer
- promotions), but the values of CCHHAARR__MMIINN and CCHHAARR__MMAAXX are not
- affected. The default is to treat values of type cchhaarr as if
- they had type uunnssiiggnneedd cchhaarr.
-
- --TTAARRGG:: ......
- The target option group controls the target architecture and
- machine for which code is generated. The individual controls
- in this group are:
-
- ddiissmmiissss__mmeemm__ffaauullttss [[ == (( OONN||OOFFFF ))]]
- Forces the kernel to dismiss any memory faults (such as
- SIGSEGV or SIGBUS) which occur during execution of the
- program (not just the code being compiled). This option
- allows optimizations which might cause extra faults and
- can slow down execution if extra faults occur. It also
- prevents recognition of legitimate faults. Default is
- OOFFFF.
-
- eexxcc__mmaaxx== [[II]][[UU]][[OO]][[ZZ]][[VV]]
- Specifies the maximum set of IEEE-754 floating point
- exceptions for which traps may be enabled at runtime for
- the program (not just the code being compiled). Zero or
- more of the five letters specify inexact (II), underflow
- (UU), overflow (OO), divide-by-zero (ZZ), and invalid
- operation (VV) exceptions. This option allows
- optimizations which might cause extra exceptions, and it
- may prevent recognition of legitimate faults. It does
- not affect explicit setting of exception enable flags by
- the program, and should be avoided if the program does
- this. See also the --TTAARRGG::eexxcc__mmiinn description. Default
- is IIUUOOZZVV, affected by the --TTEENNVV::XX option.
-
- eexxcc__mmiinn== [[II]][[UU]][[OO]][[ZZ]][[VV]]
- Specifies the minimum set of IEEE-754 floating point
- exceptions for which traps must be enabled at runtime for
- the program (not just the code being compiled). Zero or
- more of the five letters specify inexact (II), underflow
- (UU), overflow (OO), divide-by-zero (ZZ), and invalid
- operation (VV) exceptions. This option does not affect
- explicit setting of exception enable flags by the
- program, and should be avoided if the program does this.
- See also the --TTAARRGG::eexxcc__mmaaxx option. The --TTAARRGG::eexxcc__mmaaxx and
- --TTAARRGG::eexxcc__mmiinn options specified for the various files
- that comprise a program must be consistent; for example,
- none of the --TTAARRGG::eexxcc__mmiinn values may require exceptions
- disabled by --TTAARRGG::eexxcc__mmaaxx values. Default is none.
-
- ffpp__pprreecciissee [[ == (( OONN||OOFFFF ))]]
- Forces the target processor into precise floating point
- mode at execution time. Using this option to compile any
- of the component source files of a program invokes this
- feature in the resulting program. This option is
- supported only on R8000 target processors and can cause
- significant performance degradation for programs with
- heavy floating point usage. See also the ffppmmooddee(1)
- command.
-
- iissaa== (( mmiippss33||mmiippss44 ))
- Identifies the target instruction set architecture for
- compilation, such as the set of instructions that are
- generated. Specify --TTAARRGG::iissaa==mmiippss33 for code that must
- run on R4000 processors. This option is equivalent to
- specifying --mmiippss33 or --mmiippss44 (see those options for
- defaults).
-
- mmaadddd [[ == (( OONN||OOFFFF ))]]
- Enables or disables transformations to use multiply/add
- instructions. These instructions perform a multiply and
- an add with a single roundoff. They are more accurate
- than the usual discrete operations, and may cause results
- not to match baselines from other targets. Use this
- option to determine whether observed differences are due
- to mmaadddds. Default is OONN for MIPS IV target, ignored for
- others.
-
- ppllaattffoorrmm [[ == _i_p_x_x]]
- Identifies the target SGI platform for compilation,
- choosing various internal parameters (such as cache
- sizes) appropriately. The current supported values are
- ip19, ip20, ip21, ip22_4k, ip22_5k, ip24, ip25, ip26,
- ip27, ip28, ip30, ip32_5k, and ip32_10k. The appropriate
- selection for your platform can be determined by running
- ""hhiinnvv --cc pprroocceessssoorr"". The first line identifies the
- proper IP number and, for those where a processor suffix
- (for example, __44kk) is required, the next line identifies
- the processor (R4000).
-
- pprroocceessssoorr== (( rr44000000||rr55000000||rr88000000||rr1100000000||rr1122000000 ))
- Selects the processor for which to schedule code. The
- chosen processor must support the ISA specified (or be
- implied by the ABI). The processor can also be indicated
- by specifying rr44kk, rr55kk, rr88kk, rr1100kk, rr1122kk.
-
- rr44kkrreevv2222==_s_e_t_t_i_n_g
- Generates code to work around bugs in the R4000 rev 2.2
- chip. This currently means simulating 64-bit variable
- shifts in the software. Specify OONN or OOFFFF for _s_e_t_t_i_n_g.
- The default is OOFFFF.
-
- ssyynncc [[ == (( OONN||OOFFFF ))]]
- Enable/disable use of SYNC instructions. Default is OONN.
-
- --TTEENNVV:: ......
- The target environment option group controls the target
- environment assumed and/or produced by the compiler. The
- individual controls in this group are:
-
- aalliiggnn__aaggggrreeggaattee[[== _b_y_t_e_s ]]
- Controls alignment of allocated aggregates, such as
- structs and arrays. _b_y_t_e_s specifies that any aggregate
- object at least that large is to have at least that
- alignment. By default (or if _b_y_t_e_s is not specified),
- aggregates are aligned to the integer register size, for
- example, 8 bytes for 64-bit programs and 4 bytes for 32-
- bit programs. The value 0 specifies that the minimum
- alignment consistent with the ABI is to be used.
- Otherwise, the value given must be a power of two no
- greater than 16.
-
- cchheecckk__ddiivv[[==NN]]
- See --DDEEBBUUGG::ddiivv__cchheecckk on the DDEEBBUUGG__ggrroouupp(5) man page.
-
- llaarrggee__GGOOTT [[ ==OONN ]]
- Assumes that the Global Offset Table (for shared code) is
- more than 64K bytes and generates large offsets for
- references to it. Default is OOFFFF. See also the
- ssmmaallll__GGOOTT option description.
-
- ssmmaallll__GGOOTT [[ ==OONN ]]
- Assumes that the Global Offset Table (for shared code) is
- less than 64K bytes and generates small offsets for
- references to it. This is the default mode. See also the
- llaarrggee__GGOOTT option decription.
-
- vvaarraarrggss__pprroottoottyyppeess [[ == (( OOFFFF||OONN ))]]
- See the --DDEEBBUUGG::vvaarraarrggss__pprroottoottyyppeess option description on
- the DDEEBBUUGG__ggrroouupp(5) man page.
-
- XX==00 .... 44
- Specifies the level of enabled exceptions that is assumed
- for purposes of performing speculative code motion
- (default level 1 at --OO00 .... --OO22, 2 at --OO33). In general,
- an instruction is not speculated (i.e. moved above a
- branch by the optimizer) unless any exceptions it might
- cause are disabled by this option. At level 0, no
- speculative code motion may be performed. At level 1,
- safe speculative code motion may be performed, with
- IEEE-754 underflow and inexact exceptions disabled. At
- level 2, all IEEE-754 exceptions are disabled except
- divide by zero. At level 3, all IEEE-754 exceptions are
- disabled including divide by zero. At level 4, memory
- exceptions may be disabled or ignored.
-
- NOTE: At levels above the default level 1, various
- hardware exceptions that are normally useful for
- debugging, or which are trapped and repaired by the
- hardware, may be disabled or ignored, with the potential
- of hiding obscure bugs. The program should not
- explicitly manipulate the IEEE floating point trap-enable
- flags in the hardware if this option is used.
-
- zzeerrooiinniitt__iinn__bbssss [[ == (( OOFFFF||OONN ))]]
- Enables data that is initialized to zero to be loaded
- into the ..bbssss section instead of the ..ddaattaa section.
-
- --ttrraappuuvv This option has been replaced by --DDEEBBUUGG::ttrraapp__uunniinniittiiaalliizzeedd.
- See the DDEEBBUUGG__ggrroouupp(5) man page.
-
- --UU _n_a_m_e Removes any initial definition of _n_a_m_e.
-
- --uussee__rreeaaddoonnllyy__ccoonnsstt
- Puts string literals and file-level (static, common, or
- external) ccoonnsstt qualified initialized variables into a ..rrooddaattaa
- section to separate these objects from data likely to be
- modified. This is the default. However, if you want
- constants to not be writeable, then in addition to specifying
- --uussee__rreeaaddoonnllyy__ccoonnsstt, you must also specify --GG00 --rrddaattaa__sshhaarreedd,
- because by default, the linker makes ..rrooddaattaa and gp-relative
- sections writable.
-
- --uussee__rreeaaddwwrriittee__ccoonnsstt
- Puts all ccoonnsstt qualified variables and string literals in a
- readable and writable data section.
-
- --vv This option has the same functionality as specifying --ffuullllwwaarrnn
- (verbose warnings).
-
- --vveerrssiioonn
- Displays the version number of the compiler.
-
- --WW _c,_a_r_g_1[[,,_a_r_g_2......]]
- Passes the argument(s) _a_r_g_i to the compiler pass _c where _c is
- one of [ppKKMMffbbaall]. The cc selects the compiler pass according
- to the following table:
-
- NNaammee ((--nn3322 oorr --6644)) CChhaarraacctteerr
-
- preprocessor pp
-
- pca KK (Automatic Parallelization
- Option Only; O32 ABI only)
-
- mpc
-
- fec ff (See below)
-
- be bb
-
- asm aa
-
- ld ll
-
- Sets of these phase names can be used to select any
- combination of phases. For example, --WWbbaa,,--oo,,ffoooo passes the
- option --oo ffoooo to the bb and aa phases.
-
- --ww Suppresses warning messages.
-
- --ww22 Counts warnings as errors. The --nn3322 option must also be
- specified with this option.
-
- --wwooffff aallll
- Suppresses warning messages. The --nn3322 option must also be
- specified with this option.
-
- --wwooffff _n_u_m_b_e_r_l_i_s_t
- Suppresses warning messages. _n_u_m_b_e_r_l_i_s_t is a comma-separated
- set of 1 or more numbersets. A numberset is either a simple
- integer or a pair of integers separated by a hyphen.
- Examples: --wwooffff 11552277 suppresses warning 1527. --wwooffff 11552277--
- 11557700 suppresses warnings 1527 through 1570. --wwooffff 11660000--
- 11770000,,11770055--11779900 suppresses numbers 1600 through 1700 and 1705
- through 1790.
-
- --xxaannssii (cccc only) See the --aannssii option description.
-
- --XXccpplluussccoommmm
- Applies C++ style comment rules. On the cccc command line, the
- --nn3322 option must also be specified.
-
- --YY _c,_p_a_t_h
- Sets the _p_a_t_h in which to find the associated phase, using the
- same phase names as given in the --WW option. The following
- characters can also be specified:
-
- II Specifies where to search for include files
-
- SS Specifies where to search for startup files (ccrrtt**..oo)
-
- LL Specifies where to search for libraries
-
- LLOOAADDEERR OOPPTTIIOONNSS
- Other arguments are assumed to be either loader options, object files,
- or libraries. These files, together with the results of any
- compilations specified, are loaded in the order given, producing an
- executable program with the default name aa..oouutt..
-
- EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
- For information on environment variables, see the ppee__eennvviirroonn(5) man
- page.
-
- NNOOTTEESS
- The compiler uses the same set of message numbers when compiling --nn3322
- or --6644, but it uses a different set of message numbers when compiling
- --oo3322. Keep this in mind when writing multi-ABI MMaakkeeffiilleess.
-
- All SGI platforms support the development and execution of --oo3322, --nn3322,
- and --6644 applications, but the subsystems containing the appropriate
- libraries are not always installed by default. During installation,
- you may have to select subsystems with names like pprroodduucctt..ssww3322 for
- --nn3322 libraries and pprroodduucctt..ssww6644 for --6644 libraries.
-
- The compiler attempts to continue after finding semantic errors.
- These errors may result in compiler internal errors.
-
- EEXXAAMMPPLLEESS
- EXAMPLE 1: Compile 64-bit MIPS IV (R8000, R10000, R5000) code, which
- will not run on R4000/R4400 processors.
-
- cc -64 -mips4 ...
-
- EXAMPLE 2: Compile 64-bit ABI (MIPS 3) code, scheduled for best
- performance on the R8000 processor but not using R8000-specific (MIPS
- IV) instructions so that it will be executable on R4000/R4400
- processors.
-
- cc -64 -TARG:proc=r8000 ...
-
- EXAMPLE 3: Compile with extensive optimization enabled, allowing
- transformations which affect floating point roundoff and overflow,
- assuming strict ANSI C aliasing rules.
-
- cc -O2 -OPT:roundoff=2:alias=typed ...
-
- EXAMPLE 4: Compile with aggressive optimization (including SWP)
- enabled, allowing transformations with arbitrary effects on floating
- point roundoff and overflow.
-
- cc -O3 -OPT:roundoff=3 ...
-
- EXAMPLE 5: Compile with aggressive optimization and generate the
- analysis files used by ProDev ProMP, the parallel analyzer. The
- ccvvppaavv(1) command invokes the parallel analyzer.
-
- cc -03 -c -apokeep test.c test.o
- cvpav -f test.c
-
- FFIILLEESS
- aa..oouutt Default name of executable output file
-
- _f_i_l_e..cc C source file
-
- _f_i_l_e..ii C source file
-
- _f_i_l_e..aannll, _f_i_l_e..mm Program analysis files used by the parallel
- analyzer, ProDev ProMP
-
- _f_i_l_e..oo Object file
-
- _f_i_l_e..ss Assembly language source file
-
- _f_i_l_e..ll Listing file
-
- iiii__ffiilleess Directory that contains ..iiii files
-
- mmoonn..oouutt File produced for analysis by pprrooff(1)
-
- rriiii__ffiilleess Directory generated for book-keeping information
- used to implement data distribution directives
-
- //uussrr//iinncclluuddee Standard directory for ##iinncclluuddee files
-
- //uussrr//bbiinn//lldd Loader
-
- //uussrr//bbiinn//ccoorrdd Function rearranger
-
- //ttmmpp//ccmmppllrr** Temporary files
-
- //eettcc//ccoommppiilleerr..ddeeffaauullttss
- Default ABI, ISA and processor options
- configuration file
-
- //uussrr//lliibb{{3322,,6644}}//lliibbcc..ssoo..11
- Shared standard library (This file is loaded by
- using the --llcc loader option and not a full path
- name.)
-
- //uussrr//lliibb{{3322,,6644}}//lliibbffppee..ssoo
- Floating point exception handler library, see
- ssiiggffppee(3c)
-
- //uussrr//lliibb{{3322,,6644}}//lliibbmm..ssoo
- Shared math library
-
- //uussrr//lliibb{{3322,,6644}}//lliibbpprrooff..aa
- Profiling library
-
- SSEEEE AALLSSOO
- aass(1), ccoolllliiddee(1), ccpppp(1), ccoopptt(1), ccvvppaavv(1), ff9900(1), mmppcc(1), ddiiss(1),
- nnmm(1), ddbbxx(1), eellffdduummpp(1), ff7777(1), ffttoocc(1), lldd(1), ppiixxiiee(1), pprrooff(1),
- ssppeeeeddsshhoopp(1), wwhhaatt(1)
-
- ggeettaabbii(3c), ssiiggffppee(3c)
-
- ggpp__oovveerrffllooww(5), llnnoo(5), oo3322(5), oopptt(5), ppee__eennvviirroonn(5)
-
- W. Kernighan and D. M. Ritchie, _T_h_e _C _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e, Prentice-
- Hall, 1978
-
- _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
-
- _C++ _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
-
- _M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e
-
- _M_I_P_S_p_r_o _6_4-_B_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
-
- _M_I_P_S_p_r_o _N_3_2 _A_B_I _H_a_n_d_b_o_o_k
-
- _P_r_o_D_e_v _P_r_o_M_P _U_s_e_r'_s _G_u_i_d_e
-
- This man page is available only online.
-